
/**
 * 消息推送服务器的地址.
 */
var MSG_PUSH_URI = "10.52.10.115:8080/msgpush"; //"10.51.111.8:8080/msgpush";

/**
 * 对WebSocket使用的简化，实现接收服务端推送的消息.
 * @author chenxiangbai <br>
 * @version 1.0.0 2013-11-14 下午5:23:27 <br>
 */
var YGWebSocket = function() {
	var result = {};
	
	/**
	 * 监听服务端的消息推送.
	 * @param userId 当前接收消息的用户ID.
	 * @param userName 当前接收消息的用户登录名称.
	 * @param password 当前接收消息的用户密码.
	 * @param listenFlags 客户端监听的消息类型标志，多个值用逗号连接.
	 * @param callbak 客户端收到消息的回调事件.
	 */
	result.openMsgPush = function(userId, userName, password, listenFlags, callbak) {
		//创建WebSocket
		var webSocket = new WebSocket('ws://' + MSG_PUSH_URI + '/YGWebSocket?userId=' 
			+ userId 
			+ "&userName=" + userName 
			+ "&password=" + password
			+ "&listenFlags=" + listenFlags);
		
		//与服务端建立连接失败的回调
		webSocket.onerror = function(event) {
//			alert("与消息服务器建立连接出错");
		};
		
		// 与服务端建立连接成功的回调
		webSocket.onopen = function(event) {
			//alert("Connection established");
		};
		
		//服务端关闭连接的回调
		webSocket.onclose = function(event) {
			//alert("Connection closed");
		};

		// 定义Message事件处理函数(收取服务端消息并处理)  
		webSocket.onmessage = function(event) {
			var data = $.parseJSON(event.data);
			callbak(data);
		};

        // 返回关闭的函数, 直接调用则关闭socket
        return function() {
            webSocket.close();
        };
    };
	
	return result;
}();





